Dynamic Fib StrategyAfter publishing many complex scripts with a myriad of inputs that were confusing for the average user, and after being told my previous publications were overfitted and not easily applied across the board...I spent the past three months working on this masterpiece.
The script is very simple to use, and it MUST be used for timeframes of 10 minutes or more. Please do not use this strategy for lower timeframes thinking that more trades is a desireable trait in a strategy. Patience is a virtue, and it doesn't matter if there are 1000 bars between trades (I am exaggerating here) all crypto is cyclical in a short timeframe of days.
The script is based on moving averages, what is different about this script is that it is the result of months of analysis of the crosses that are key indicators of the best times to trade. It also identifies crosses that indicate when a massive dump is coming and when the dump turns back into a pump. It is designed to be a long strategy with the careful identification of the dump indicators so it preserves your capital and results in a better trade approach.
At the heart of this script is the Sutte MA and the SMA, and only a subset of the settings for these are exposed for user input to keep things simple.
The second key piece of how this script works is the Fibonnaci levels. For the purposes of using this script, the first two levels (Fib 1 and Fib 2) are only for display purposes of the bands and does not affect the triggers for trading. It is only the third and fourth levels which impact the trade triggerers for buying and selling. The idea here is that the best times to execute a trade is when the price moves into the outer bands as these are typical triggers for selloffs from those suffering from FOMO.
Since I have done quite a bit of work here, I do not wish for this script to be copied and pasted into other scripts. It is my coup de grace and there is not a script like this anywhere on TradingView that delves deep into the crosses that matter.
在脚本中搜索"the script"
logLibrary "log"
Logging library for easily displaying debug, info, warn, error and critical messages.
No real need to explain why you might want to use this library! I'm sure you've all experienced the frustration of trying to understand the data state of your scripts... so, enjoy! More on it's way...
(Don't forget to check the helpers in the script and the useful tips below)
Some Useful Tips
By default the log console persists between bars (for history) and bars and ticks (for realtime).
Sometimes it is useful to clear the log after each candle or tick (assuming we are using the above helpers):
```
log_print(clear = true) // starts afresh on every bar and tick (excludes historical bars but good realtime tick analysis)
log_print(clear = barstate.isnew) // clears the log at the start of each bar (again, excludes historical but good realtime candle analysis)
```
It is also useful to be able to selectively understand the state of data at specific points or times within a script:
```
if log.once()
debug('useful variable', my_var) // this log only gets written once, upon first execution of this statement
if log.only(5)
debug3(a, b, c) // these variables are only logged the first five times this statement is executed
log_print(clear = false) // clear must be false and you should not write other logs on every bar, or the above will be lost
```
Final tip. If you want to view ONLY log entries of a particular level, then negate the constant:
```
log_print(level = -LOG_DEBUG)
```
Detailed Interface
once() Restrict execution to only happen once. Usage: if assert.once()\n happens_once()
Returns: bool, true on first execution within scope, false subsequently
only(repeat) Restrict execution to happen a set number of times. Usage: if assert.only(5)\n happens_five_times()
Parameters:
repeat : int, the number of times to return true
Returns: bool, true for the set number of times within scope, false subsequently
init() Initialises the log array
Returns: string , tuple based array to contain all pending log entries (__LOG)
clear(msgs) Clears the log array
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
trace(msgs, msg) Writes a trace message to the log console
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
msg : string, the trace message to write to the log
debug(msgs, msg) Writes a debug message to the log console
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
msg : string, the debug message to write to the log
info(msgs, msg) Writes an info message to the log console
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
msg : string, the info message to write to the log
warn(msgs, msg) Writes a warning message to the log console
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
msg : string, the warn message to write to the log
error(msgs, msg) Writes an error message to the log console
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
msg : string, the error message to write to the log
fatal(msgs, msg) Writes a critical message to the log console
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
msg : string, the fatal message to write to the log
log(msgs, level, msg) Write a log message to the log console with a custom level
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
level : ing, the logging level to assign to the message
msg : string, the log message to write to the log
severity(msgs) Checks the unprocessed log messages and returns the highest present level
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
Returns: int, the highest level found within the unfiltered logs
print(msgs, level, clear, rows, text_size, position) Prints all log messages to the screen
Parameters:
msgs : string , the current collection of unfiltered and unprocessed logs (__LOG)
level : int, the minimum required log level of each message to be displayed
clear : bool, clear the printed log console after each render (useful with realtime when set to barstate.isconfirmed)
rows : int, the number of rows to display in the log console
text_size : string, the text size of the log console (global size vars)
position : string, the position of the log console (global position vars)
unittest_log(case) Log module unit tests, for inclusion in parent script test suite. Usage: log.unittest_log(__ASSERTS)
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
unittest(verbose) Run the log module unit tests as a stand alone. Usage: log.unittest()
Parameters:
verbose : bool, optionally disable the full report to only display failures
assertLibrary "assert"
Production ready assertions and auto-reporting for unit testing pine scripts.
This library was born from the need to maintain production level stability and catch regressions / bugs early and fast. I hope this help you trust your pine scripts too. More libraries and tools on their way... please follow for more.
Please see the script for helpers to copy into your own scripts as well as examples at the bottom of the library unit testing itself.
Quick Reference
```
case = assert.init()
new_case(case, 'Asserts for floats and ints')
assert.equal(a, b, case, 'a == b')
assert.not_equal(a, b, case, 'a != b')
assert.nan(a, case, 'a == na')
assert.not_nan(a, case, 'a != na')
assert.is_in(a, b, case, 'a in b ')
assert.is_not_in(a, b, case, 'a not in b ')
assert.array_equal(a, b, case, 'a == b ')
new_case(case, 'Asserts for ints only')
assert.int_in(a, b, case, 'a in b ')
assert.int_not_in(a, b, case, 'a not in b ')
assert.int_array_equal(a, b, case, 'a == b ')
new_case(case, 'Asserts for bools only')
assert.is_true(a, case, 'a == true')
assert.is_false(a, case, 'a == false')
assert.bool_equal(a, b, case, 'a == b')
assert.bool_not_equal(a, b, case, 'a != b')
assert.bool_nan(a, case, 'a == na')
assert.bool_not_nan(a, case, 'a != na')
assert.bool_array_equal(a, b, case, 'a == b ')
new_case(case, 'Asserts for strings only')
assert.str_equal(a, b, case, 'a == b')
assert.str_not_equal(a, b, case, 'a != b')
assert.str_nan(a, case, 'a == na')
assert.str_not_nan(a, case, 'a != na')
assert.str_in(a, b, case, 'a in b ')
assert.str_not_in(a, b, case, 'a not in b ')
assert.str_array_equal(a, b, case, 'a == b ')
assert.report(case)
```
Detailed Interface
once() Restrict execution to only happen once. Usage: if assert.once()\n happens_once()
Returns: bool, true on first execution within scope, false subsequently
init() Initialises the asserts array
Returns: string , tuple based array containing all unit test results and current case details (__ASSERTS)
equal(a, b, case, name) Numeric assert equal. Usage: assert.equal(1, 1, case, 'one == one')
Parameters:
a : float, numeric value "a" to compare equal to "b"
b : float, numeric value "b" to compare equal to "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
not_equal(a, b, case, name) Numeric assert not equal. Usage: assert.not_equal(1, 2, case, 'one != two')
Parameters:
a : float, numeric value "a" to compare not equal "b"
b : float, numeric value "b" to compare not equal "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
nan(a, case, name) Numeric assert is NaN. Usage: assert.nan(float(na), case, 'number is NaN')
Parameters:
a : float, numeric value "a" to check is NaN
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
not_nan(a, case, name) Numeric assert is not NaN. Usage: assert.not_nan(1, case, 'number is not NaN')
Parameters:
a : float, numeric value "a" to check is not NaN
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
is_in(a, b, case, name) Numeric assert value in float array. Usage: assert.is_in(1, array.from(1.0), case, '1 is in ')
Parameters:
a : float, numeric value "a" to check is in array "b"
b : float , array "b" to check contains "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
is_not_in(a, b, case, name) Numeric assert value not in float array. Usage: assert.is_not_in(2, array.from(1.0), case, '2 is not in ')
Parameters:
a : float, numeric value "a" to check is not in array "b"
b : float , array "b" to check does not contain "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
array_equal(a, b, case, name) Float assert arrays are equal. Usage: assert.array_equal(array.from(1.0), array.from(1.0), case, ' == ')
Parameters:
a : float , array "a" to check is identical to array "b"
b : float , array "b" to check is identical to array "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
int_in(a, b, case, name) Integer assert value in integer array. Usage: assert.int_in(1, array.from(1), case, '1 is in ')
Parameters:
a : int, value "a" to check is in array "b"
b : int , array "b" to check contains "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
int_not_in(a, b, case, name) Integer assert value not in integer array. Usage: assert.int_not_in(2, array.from(1), case, '2 is not in ')
Parameters:
a : int, value "a" to check is not in array "b"
b : int , array "b" to check does not contain "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
int_array_equal(a, b, case, name) Integer assert arrays are equal. Usage: assert.int_array_equal(array.from(1), array.from(1), case, ' == ')
Parameters:
a : int , array "a" to check is identical to array "b"
b : int , array "b" to check is identical to array "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
is_true(a, case, name) Boolean assert is true. Usage: assert.is_true(true, case, 'is true')
Parameters:
a : bool, value "a" to check is true
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
is_false(a, case, name) Boolean assert is false. Usage: assert.is_false(false, case, 'is false')
Parameters:
a : bool, value "a" to check is false
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
bool_equal(a, b, case, name) Boolean assert equal. Usage: assert.bool_equal(true, true, case, 'true == true')
Parameters:
a : bool, value "a" to compare equal to "b"
b : bool, value "b" to compare equal to "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
bool_not_equal(a, b, case, name) Boolean assert not equal. Usage: assert.bool_not_equal(true, false, case, 'true != false')
Parameters:
a : bool, value "a" to compare not equal "b"
b : bool, value "b" to compare not equal "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
bool_nan(a, case, name) Boolean assert is NaN. Usage: assert.bool_nan(bool(na), case, 'bool is NaN')
Parameters:
a : bool, value "a" to check is NaN
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
bool_not_nan(a, case, name) Boolean assert is not NaN. Usage: assert.bool_not_nan(true, case, 'bool is not NaN')
Parameters:
a : bool, value "a" to check is not NaN
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
bool_array_equal(a, b, case, name) Boolean assert arrays are equal. Usage: assert.bool_array_equal(array.from(true), array.from(true), case, ' == ')
Parameters:
a : bool , array "a" to check is identical to array "b"
b : bool , array "b" to check is identical to array "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
str_equal(a, b, case, name) String assert equal. Usage: assert.str_equal('hi', 'hi', case, '"hi" == "hi"')
Parameters:
a : string, value "a" to compare equal to "b"
b : string, value "b" to compare equal to "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
str_not_equal(a, b, case, name) String assert not equal. Usage: assert.str_not_equal('hi', 'bye', case, '"hi" != "bye"')
Parameters:
a : string, value "a" to compare not equal "b"
b : string, value "b" to compare not equal "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
str_nan(a, case, name) String assert is NaN. Usage: assert.str_nan(string(na), case, 'string is NaN')
Parameters:
a : string, value "a" to check is NaN
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
str_not_nan(a, case, name) String assert is not NaN. Usage: assert.str_not_nan('hi', case', 'string is not NaN')
Parameters:
a : string, value "a" to check is not NaN
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
str_in(a, b, case, name) String assert value in string array. Usage: assert.str_in('hi', array.from('hi'), case, '"hi" in ')
Parameters:
a : string, value "a" to check is in array "b"
b : string , array "b" to check contains "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
str_not_in(a, b, case, name) String assert value not in string array. Usage: assert.str_in('hi', array.from('bye'), case, '"hi" in ')
Parameters:
a : string, value "a" to check is not in array "b"
b : string , array "b" to check does not contain "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
str_array_equal(a, b, case, name) String assert arrays are equal. Usage: assert.str_array_equal(array.from('hi'), array.from('hi'), case, ' == ')
Parameters:
a : string , array "a" to check is identical to array "b"
b : string , array "b" to check is identical to array "a"
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the current unit test name, if undefined the test index of the current case is used
Returns: bool, true if the assertion passes, false otherwise
new_case(case, name) Assign a new test case name, for the next set of unit tests. Usage: assert.new_case(case, 'My tests')
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
name : string, the case name for the next suite of tests
clear(case) Clear all stored unit tests from all cases. Usage: assert.clear(case)
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
revert(case) Revert the previous unit test. Usage: = assert.revert(case)
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
Returns: , tuple containing the msg and result of the reverted test
passed(case, revert) Check if the last unit test has passed. Usage: bool success = assert.passed(case)
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
revert : bool, optionally revert the test
Returns: bool, true only if the test passed
failed(case, revert) Check if the last unit test has failed. Usage: bool failure = assert.failed(case)
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
revert : bool, optionally revert the test
Returns: bool, true only if the test failed
report(case, verbose) Report the outcome of unit tests that fail. Usage: bool passed = assert.report(case)
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
verbose : bool, optionally display full report that includes the outcome of all tests
Returns: bool, true only if all tests passed
unittest_assert(case) Assert module unit tests, for inclusion in parent script test suite. Usage: assert.unittest_assert(__ASSERTS)
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
unittest(verbose) Run the assert module unit tests as a stand alone. Usage: assert.unittest()
Parameters:
verbose : bool, optionally toggle report to display the outcome of all unit tests
PriceCatch Breakout Signals IOHi TradingView Community.
Here is a script that identifies and marks two different breakout levels on the chart. It works on all instruments - equities, forex, crypto & commodities.
Probable Breakout Buy Level
Stop-Reverse Buy Level
The above chart is self-explanatory. The script uses two different formulas to look out for breakouts. This logic opens up more opportunities.
As the levels are marked in advance before the breakouts occur, it will give traders ample time to study further and plan the trade.
PLAYING SAFE
After taking the trade, to play safe, I follow this method that once the Low of the price goes above the Breakout Level, I usually shift the stop loss to buy price to protect against any sudden reversal. For me protecting capital is important. As usual with price action, longer time-frames produce more reliable signals.
STOP LOSS
While the initial stop level is suggested, traders may also use the ATR to set stop loss. Users may find my free script 'ATR value on Chart' useful.
NOTE - PRIOR TO USING THIS SCRIPT:
You may use this script in addition to your other indicators or independently. Please remember that the script is shared with absolutely no assurances and warranties whatsoever regarding usability and as a responsible trader, please satisfy yourselves thoroughly and use it only if you are convinced it works for you. Remember, you are 100% responsible for your actions. If you understand and accept that, you may use the script. The script does not identify any short signals.
QUERIES/FEEDBACK
Please PM me.
Regards to all and wish everyone all the best with trading.
The Moon█ OVERVIEW
The Moon is a script that is designed to help Traders analyse their charts using the moon. This script consists of three main features :
1. Moon Phases Pro : This is a more powerful version of the default built-in Moon Phases where it would plot both past cycles and Future cycles with a better accuracy.
2. Moon Lines : This plots the moon's longitude into price. you can also select your desired $/degree ( price vs time unit) to make these lines better suited for your chart and the asset your playing with. We also didn't forget to add an option to enable harmonics of these lines. In addition, you can select "reverse" to get the downtrending plants as well.
3. Moon Angles : This allows you to highlight areas where the moon is at X degree. you can get the Moon at zero aris or 180 degrees or any other degree!.
We also added some styling options to help with the visuals.
█ Future Plans and upgrades to this script may include :
1. Enhanced algorithm for a faster loading/processing script.
2. More future dates plotting.
And more! Feel free to contact me with any feature that you would like to see in this script
█ How to use :
1. Open the settings.
2. Enable your desired tool and adjust the settings.
Give the script a few seconds and you should be set. Don't enable more than 2 tools at the same time, but if you want to do that, you can insert the same script twice or more in your chart.
This script is coded as an addon to the Gann ToolBox package/scripts.
Planetary Aspects & Transits█ OVERVIEW
Planetary Aspects and Transits are commonly used by Astrology Traders and Gann Traders for various reasons. This script is designed to highlight these planetary aspects and transitions on your chart. You can select your favorite planet -including the sun and the moon- and also select the aspect that you would like to view and this script will highlight it on the chart. The aspects that are included to choose from are ( 0, 30, 45, 60, 72, 90, 120, 135, 144, 150, and 180 degrees ). You can also select the mode of these aspects and transits ( Heliocentric vs Geocentric ).
This script offers two running options :
1. Planet vs aspect : using this option you will be able to select a planet and an aspect and we will find/highlight all the transitions vs all the planets in that aspect.
2. Planet vs Planet : using this option you will be able to select two planet and a single aspect to view on the chart.
█ Future Plans and upgrades to this script may include :
1. Enhanced algorithm for a faster loading/processing script.
2. More future dates plotting.
And more! Feel free to contact me with any feature that you would like to see in this script
█ How to use :
1. Open the settings.
2. Choose the planet/planets, and the aspect.
3. Enable the option.
Give the script a few seconds and you should be set.
This script is coded as an addon to the Gann ToolBox package/scripts.
Barholle eMA and RSI Movement TestThis is a test that offers insight into whether and asset is heading into bullish or bearish territory.
This indicator/test offers insight into the Exponential Moving Average's velocity and acceleration as well as the Stochastic RSI's velocity, acceleration and jerk. Included is a 'Stochastic Difference' and 'Stochastic Growth' indicators (commented out) that measure the difference between K and D in the Stoch RSI as well as the rate of it's change. This test is all about crossovers - the best leading indicator is a downward cross of the eMA velocity over the eMA acceleration, indicating a drop in price in the current or next bar.
The lines or importance have been set to -2 and 5, but these should be adjusted to suit your preferences. These numbers were chosen in order to try and create some kind of threshold after which action might be suggested. Backtesting is highly recommended so you can see how the test does and does not work. It is super powerful, but it is not omniscient - its an RSI and eMA derivative, past success does not necessarily dictate future success.
Please look at the code for several more plots you can use of derivatives and other ideas explore but commented out for greater legibility of the graph. Commenting and commenting (or uncommenting all and just disabling some in the settings) and comparing the graphs and crossovers is a useful exercise. To that end, one last concept - the MARSI - a combined moving averages and RSI measurement - was abandoned because it didn't appear to indicate anything of use, however you may find crossovers or patterns with it comparing it to other graphs, so it was left in but commented.
Please take a look at the comments and all the math and indicators 'left on the cutting room floor' in the script. Maybe you'll find a gem in the redux version of this script.
Outreach regarding the script, patterns noticed and full-on stealing of the script are all permitted. Many elements of this script were nabbed from other scripts - thank you to a community of coders who put it all out there.
Gann Planetary Lines█ OVERVIEW
Gann Planetary Lines is one of the most powerful Gann Tools that converts planetary longitude angles into price. This script can be used in many different ways, methods, and trading systems.
This Script allows you to Plot Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, and Pluto. While also allowing you to select the planetary line mode "Heliocentric" or "Geocentric"
One more important feature about this script. It also allows you to plot in the harmonics of these planetary lines : "Wheel of 24" ,"Semi-Sextile", "Semi-Square", "Sextile", "Quintile", "Square", "Trine", and "Opposition "
And of course you will be able to select the color of each one of the planets when it comes to styling.
One more important thing to mention, Yes you will be able to select the $/° value so you can square these lines perfectly in your chart!
█ Future Plans and upgrades to this script may include :
1. Further lines into the futures.
2. An option to Enable and Disable the 0° vertical line when the planet transition from 360° to 0°
3. Labels around the planetary lines to distinguish between them not only by color by text as well.
And more! Feel free to contact me with any feature that you would like to see in this script
█ How to use :
First of all, select the appropriate $/° value.
Then select the planet you would like to use from the list in the script's option.
Select the mode of the planet, "Heliocentric" or "Geocentric"
Make sure to enable the planet by clicking on the check mark.
Then you will be able to see these planets on your chart.
Additionally, I have included an option to add the harmonics to your planetary lines!
Simply select the harmonics that you would like to have and give it 10 seconds and it should be in your chart.
This script is coded as an addon to the Gann ToolBox package/scripts.
MTP AnalysisThe MTP Reversal Bars, MTP Swing Pivots and MTP ATR Stop are all included in the MTP Analysis Script.
The MTP Reversal Bars give the entry triggers for the MTPredictor Trade Setups. Blue for a potential Buy, Red for a potential Sell, and Grey for neutral. Please note, these are only to be used in conjunction with our MT Trade and MTP Advanced Trade Setup Scripts, and are only relevant at (or up to 5 bars after) a potential trade setup. They are calculated using a unique combination of reversal triggers.
The MTP Swing Pivots connect the swing highs and lows on your chart, giving you the Pivots off which to work for your MTPredictor Analysis, for example when using our MTP Decision Point (DP) Script. The Swing Pivots use the number of Bars either side of the pivots for its construction (not a % retracement), and as such are not a simple Zig-zag indicator.
The MTP ATR Stop is used to trail your protective Stop, once in a position, when the Market is “strong” (MTP Trend indicator is beyond the strength band) when the market reaches its projected Profit target. Please see the MTP Trend indicator Script for more information on this.
There is a risk in Trading and Investing. Losses can and will unfold.
The script is available as an “invite-only” script, as part of the MTPredictor suite of tools on Trading View.
To obtain access, please go to the web page in our signature that appears below.
TradeChartist Donchian Channels Breakout Filter™TradeChartist Donchian Channels Breakout Filter is an elegant version of the classic Donchian Channels with few extra variations and option to filter breakouts based on user preferred Breakout price selection to generate Trade Entries.
===================================================================================================================
Features of ™TradeChartist Donchian Channels Breakout Filter
======================================================
Option to plot Donchian Channels of user preferred length, based on the Source price in addition to High/Low Donchian Channels.
Generates trade entries based on user preferred Breakout Price. For example, if the user prefers HL2 as breakout price, irrespective of the Donchian Channels type, trade entries are generated only when hl2 price (average of high/low) breaks out of the upper or lower band.
Option to plot background colour based on Breakout trend. The bull zones are filled with green background, the Bear zones are filled with red background and the bar that broke out is filled with orange background.
Option to colour price bars using Donchian Channels price trend. The Donchian Channels basis line is plotted using the same colours as coloured bars as default.
Alerts can be created for long and short entries using Once per Bar Close .
Note: This script does not repaint . To use the script for trade entries, wait for the bar close and use a second confirmator (includes fundamentals) based on asset type as some markets require users to have good pulse on the fundamentals as trading by Technicals/price action dynamic alone may not be safe.
===================================================================================================================
Best Practice: Test with different settings first using Paper Trades before trading with real money
===================================================================================================================
This is not a free to use indicator. Get in touch with me (PM me directly if you would like trial access to test the indicator)
Premium Scripts - Trial access and Information
Trial access offered on all Premium scripts.
PM me directly to request trial access to the scripts or for more information.
===================================================================================================================
TradeChartist Visualizer ™TradeChartist Visualizer is a fully packed Trader's toolkit that helps decide Trade Entries and Exits based on Bollinger Bands and Donchian Channels breakouts and can be further exploited by the use of various visualizers and built in Filters like Ichimoku Cloud, 15 different Moving Averages, RSI, TradeChartist's original MA Visualizer and Automatic Levels Generator.
===================================================================================================================
Bollinger Bands is a classic indicator that uses a simple moving average of 20 periods, along with plots of upper and lower bands that are 2 standard deviations away from the basis line. These bands help visualize price volatility and trend based on where the price is, in relation to the bands.
Donchian Channels comprises of three plots - a upper band, a lower band and a mean line (or mid line of the channel). The upper band is based on highest high of N periods specified by the user and the lower band is based on the lowest low of N periods specified by the user. These channels help spot price breaching high or low of last N periods clearly, thereby aiding the trader to understand the price action of any security better on any given timeframe.
===================================================================================================================
╔═════ 𝗕𝗕 & 𝗗𝗼𝗻𝗰𝗵𝗶𝗮𝗻 𝗖𝗵𝗮𝗻𝗻𝗲𝗹𝘀 ═════╗
™TradeChartist Visualizer is based on the idea of Bollinger Bands and Donchian Channels Breakout model for generating Trade Entries. Visualizer uses the following three fundamental plot options from the settings that the user can choose from, to spot breakouts, support/resistance levels and the trading price range of the security.
1. Bollinger Bands
The 𝟏. 𝐁𝐨𝐥𝐥𝐢𝐧𝐠𝐞𝐫 𝐁𝐚𝐧𝐝𝐬 option plots the Bollinger Bands for the chart timeframe (default is 55 SMA with 1 standard Deviation). This can be changed by entering different values in BB Sᴛᴀɴᴅᴀʀᴅ Dᴇᴠɪᴀᴛɪᴏɴ and MA Lᴇɴɢᴛʜ ғᴏʀ BB/Dᴏɴᴄʜɪᴀɴ Cʜᴀɴɴᴇʟs .
To use a different Moving Average for the Bollinger Bands Basis line, uncheck 𝐒𝐌𝐀 𝐁𝐁 𝐨𝐧𝐥𝐲 - 𝐔𝐧𝐜𝐡𝐞𝐜𝐤 𝐟𝐨𝐫 𝐧𝐨𝐧-𝐒𝐌𝐀 𝐁𝐁
The option is enabled as default as it keeps the SMA as standard. Unchecking this option and choosing a different moving average out of the 15 MAs in the dropdown, the plot changes significantly for each. Also a warning label will appear on screen if Standard Deviation more than 1 is used for non standard MA for Bollinger Bands, as the settings must be tested for non-standard Bollinger Bands before planning to trade with it.
2. True Donchian Channels
The 𝟐. 𝐓𝐫𝐮𝐞 𝐃𝐨𝐧𝐜𝐡𝐢𝐚𝐧 𝐂𝐡𝐚𝐧𝐧𝐞𝐥𝐬 option plots Donchian Channels by inspecting the lookback lengths for highest highs and lowest lows of the user specified periods, which can be changed in Uᴘᴘᴇʀ Dᴏɴᴄʜɪᴀɴ Cʜᴀɴɴᴇʟ Lᴇɴɢᴛʜ and Lᴏᴡᴇʀ Dᴏɴᴄʜɪᴀɴ Cʜᴀɴɴᴇʟ Lᴇɴɢᴛʜ user input boxes from Visualizer settings.
3. Donchian Channels - MA and Non-MA Source
The 𝟑. 𝐃𝐨𝐧𝐜𝐡𝐢𝐚𝐧 𝐂𝐡𝐚𝐧𝐧𝐞𝐥𝐬 - 𝐌𝐀/𝐍𝐨𝐧-𝐌𝐀 𝐒𝐨𝐮𝐫𝐜𝐞 option plots modified Donchian Channels based on highest high and lowest low of Moving Average or the Source using user specified periods, which can be changed in Uᴘᴘᴇʀ Dᴏɴᴄʜɪᴀɴ Cʜᴀɴɴᴇʟ Lᴇɴɢᴛʜ , Lᴏᴡᴇʀ Dᴏɴᴄʜɪᴀɴ Cʜᴀɴɴᴇʟ Lᴇɴɢᴛʜ , MA Lᴇɴɢᴛʜ ғᴏʀ BB/Dᴏɴᴄʜɪᴀɴ Cʜᴀɴɴᴇʟs choosing the source plot from Sᴏᴜʀᴄᴇ and MA Type from MA ᴛʏᴘᴇ - (ғᴏʀ ᴘʟᴏᴛs 1 & 3) . For Donchian Channels plot of Non-MA Source, choose Use Source from MA ᴛʏᴘᴇ - (ғᴏʀ ᴘʟᴏᴛs 1 & 3) dropdown.
===================================================================================================================
╔═════════ 𝗠𝗔 𝗩𝗶𝘀𝘂𝗮𝗹𝗶𝘇𝗲𝗿 ═════════╗
MA Visualizer is a powerful and very useful original visual method to plot Moving Averages of the close price of the security for user specified look back period in a visually appealing style in the form of colour coded bands. MA Visualizer not only helps the trader spot the price action of the security relative to the moving average, but also paints a visual picture of the trend strength, which must be seen and used on chart to appreciate its elegance.
Activate 𝗠𝗔 𝗩𝗶𝘀𝘂𝗮𝗹𝗶𝘇𝗲𝗿 and choose the MA type from MA Vɪsᴜᴀʟɪᴢᴇʀ Tʏᴘᴇ dropdown and entering the lookback period in MA Vɪsᴜᴀʟɪᴢᴇʀ ᴘᴇʀɪᴏᴅ input box. MA Visualizer colour theme can be be changed from MA Vɪsᴜᴀʟɪᴢᴇʀ Cᴏʟᴏʀ Sᴄʜᴇᴍᴇ dropdown.
The faster of the two set of bands that form the MA Visualizer reacts to price action faster and can be clearly seen from its change of colour from Bull Colour to Bear Colour or viceversa earlier than the slower set of bands. The fill colour between the bands also helps the user stay in a trade or exit a trade based on other confirmators or filters included in ™TradeChartist Visualizer .
===================================================================================================================
╔═══════ 𝗦𝗶𝗴𝗻𝗮𝗹𝘀 𝗮𝗻𝗱 𝗙𝗶𝗹𝘁𝗲𝗿𝘀 ═══════╗
𝗦𝗶𝗴𝗻𝗮𝗹𝘀
Trade Signals can be enabled along with use of various filters from this heading in Visualizer settings. To plot Trade entry markers on chart when a trade signal is generated, enable 𝐁𝐁/𝐃𝐨𝐧𝐜𝐡𝐢𝐚𝐧 𝐂𝐡𝐚𝐧𝐧𝐞𝐥𝐬 𝐁𝐫𝐞𝐚𝐤𝐨𝐮𝐭 𝐒𝐢𝐠𝐧𝐚𝐥𝐬.
The script automatically detects the breakouts based on user specified settings under 𝗕𝗕 & 𝗗𝗼𝗻𝗰𝗵𝗶𝗮𝗻 𝗖𝗵𝗮𝗻𝗻𝗲𝗹𝘀. Trade Entries are plotted on the real-time breakout candle, so it is recommended to wait for bar close before taking a position in the direction of the breakout.
𝗙𝗶𝗹𝘁𝗲𝗿𝘀
Various Filters can be used from this heading to reduce noise and help make the trade decision more effective and eliminates unproductive trades when the price is ranging or during sideways movement.
To use Filters, enable 𝐔𝐬𝐞 𝐓𝐫𝐚𝐝𝐞 𝐅𝐢𝐥𝐭𝐞𝐫 and choose the Filters from under Tʀᴀᴅᴇ Fɪʟᴛᴇʀ 1 and Tʀᴀᴅᴇ Fɪʟᴛᴇʀ 2 . If --- is chosen, no filter will be used. Trade filter parameters can be changed from under 𝗙𝗶𝗹𝘁𝗲𝗿 𝗣𝗮𝗿𝗮𝗺𝗲𝘁𝗲𝗿𝘀 section of Visualizer settings. The two trade filter dropdowns enable traders to use upto 2 filters from the following.
══> MA filter - This filters entries after a breakout only if the close price had breached the MA price. Filter MA is based on the same settings as MA Visualizer. This MA used for Filter can also be plotted by enabling 𝐃𝐢𝐬𝐩𝐥𝐚𝐲 𝐌𝐀 𝐅𝐢𝐥𝐭𝐞𝐫 (𝐌𝐀 𝐕𝐢𝐬𝐮𝐚𝐥𝐢𝐳𝐞𝐫 𝐒𝐞𝐭𝐭𝐢𝐧𝐠𝐬). To view this MA plot clearly, disable MA Visualizer.
══> MA Visualizer filter - This filters entries after a breakout only if both set of MA Visualizer bands had turned into same colour (either Bull or Bear Colour) agreeing with the direction of the breakout.
══> RSI filter - This filters entries after a breakout only if the RSI had crossed above RSI - Lᴏɴɢ Eɴᴛʀʏ Fɪʟᴛᴇʀ for Longs or if RSI had crossed below RSI - Sʜᴏʀᴛ Eɴᴛʀʏ Fɪʟᴛᴇʀ .
══> Kumo Breakout filter - This filters entries after a breakout only if price had closed above or below the Kumo of the Ichimoku Cloud in the direction of the breakout.
══> Price crossing Kijun Sen - This filters entries after a breakout only if close price had crossed Kijun Sen or the Ichimoku Base Line in the direction of the breakout.
To visualize the Kumo Breakout or Price crossing Kijun Sen, Ichimoku Cloud can be plotted on chart by enabling 𝐃𝐢𝐬𝐩𝐥𝐚𝐲 𝐈𝐜𝐡𝐢𝐦𝐨𝐤𝐮 𝐂𝐥𝐨𝐮𝐝 from 𝗙𝗶𝗹𝘁𝗲𝗿 𝗣𝗮𝗿𝗮𝗺𝗲𝘁𝗲𝗿𝘀 section of Visualizer settings.
===================================================================================================================
╔═══ 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗰 𝗟𝗲𝘃𝗲𝗹𝘀 𝗚𝗲𝗻𝗲𝗿𝗮𝘁𝗼𝗿 ════╗
Enabling 𝗔𝘂𝘁𝗼𝗺𝗮𝘁𝗶𝗰 𝗟𝗲𝘃𝗲𝗹𝘀 𝗚𝗲𝗻𝗲𝗿𝗮𝘁𝗼𝗿 plots support and resistance levels automatically without any input from the user other than preferred levels plot from the indicator settings namely,
Plot Local Levels for Lower TF - Plots all important Support/Resistance levels for mostly smaller time frames (can be used for up to 1hr in most cases). Recommended for Scalping/Swing Trading mostly dependent on volatility.
Plot Local Levels for Higher TF - Plots all important Support/Resistance levels inferred from mostly time frames - Short to Mid term outlook.
Use Trading View Data Window to make effective use of the levels.
===================================================================================================================
╔═════════ 𝗨𝘀𝗲𝗳𝘂𝗹 𝗘𝘅𝘁𝗿𝗮𝘀 ═════════╗
Volatility exhaustion is detected by the script and plots $ on bar highs for Long Trades and bar lows for Short Trades if Tᴀᴋᴇ Pʀᴏғɪᴛ Bᴀʀs is enabled.
Candles/Bars can be colored with Price action trend strength by enabling Vɪsᴜᴀʟɪᴢᴇʀ Cᴏʟᴏʀ Bᴀʀs and by choosing one of two themes from Bᴀʀ Cᴏʟᴏʀ Sᴄʜᴇᴍᴇ . Bar colors can also be inverted using Iɴᴠᴇʀᴛ Bᴀʀ Cᴏʟᴏʀs option.
To paint the background of the chart to spot trade zones, enable Tʀᴀᴅᴇ Zᴏɴᴇs Bᴀᴄᴋɢʀᴏᴜɴᴅ Fɪʟʟ .
Alerts
Alerts can be created for Long and Short entries by using Once Per Bar Close as Alert Frequency. Entries are generated on Real time bars based on Breakout and filter conditions. It is recommended to wait for bar close before taking a position based on Visualizer Trade Entries.
The indicator does not repaint and can be confidently used for alerts and trade entries without worrying about signals disappearing.
™TradeChartist Visualizer can also be connected to ™TradeChartist Plug and Trade to generate entries along with Targets, Stop Loss plots etc. Target and Stop Loss alerts can be created using Plug and Trade's Alerts system.
===================================================================================================================
There are several combinations of settings that can be tested on the security traded based on timeframe and risk/reward expectations. The indicator can be used for trade entries with filter combinations or can be used as standalone Visualizer for trend confirmations, levels etc. Following are a few examples using the Visualizer.
Example Charts
1. ETH-USDT 1hr chart using Bollinger Bands (55/1, SMA) with 89 period Hull MA as MA Visualizer filter for BB Entries.
2. AAPL 1hr chart using 34 period Donchian Channels with 89 period Zero-Lag EMA as MA Visualizer filter for Entries.
3.EUR-USD 1hr chart using 34 period Donchian Channels with 89 period TEMA as MA Visualizer Filter for Entries.
4. XBT Daily chart using 9/21 Donchian Channels with Kumo Breakout Filter and 34 period Hull MA Visualizer Filter for Entries connected to Plug and Trade.
5. LINK-USDT 1hr chart using 34 period Donchian Channels with 55 period LSMA MA Visualizer Filter for Entries with Ichimoku Cloud Plot.
===================================================================================================================
Best Practice: Test with different settings first using Paper Trades before trading with real money
===================================================================================================================
This is not a free to use indicator. Get in touch with me (PM me directly if you would like trial access to test the indicator)
Premium Scripts - Trial access and Information
Trial access offered on all Premium scripts.
PM me directly to request trial access to the scripts or for more information.
===================================================================================================================
TradeChartist TrendRider ™TradeChartist TrendRider is an exceptionally beautiful and a functional indicator that does exactly what it says on the tin. The indicator rides the trend based on Momentum, Volatility, detecting critical zones of Support and Resistance along the way, which helps the indicator find the right trend to ride, plotting Trend Markers and Trade Signals based on only one piece of User input - TrendRider Type (Aggressive, Normal or Laid Back).
===================================================================================================================
What does ™TradeChartist TrendRider do?
™TradeChartist TrendRider dynamically calculates Support and Resistance levels when riding a trend and uses these levels for confirmation on breach or fail (on a candle close), before reversing from the current trend it is riding. The change of trend is signalled using Bᴜʟʟs or Bᴇᴀʀs labels which are plotted upon confirmation of the Trend.
TrendRider plots Bull and Bear Trend Markers on chart, which helps the user get a visual confirmation of the Trend.
TrendRider also plots $ signs to show Take Profit Bars and also paints Trend strength on price bars based on the Color Scheme, if these options are enabled from the indicator settings.
The above features can be clearly seen on the 1 hr chart of GBP-USD below.
===================================================================================================================
How to create Alerts for ™TradeChartist TrendRider Long and Short Entries?
Alerts can be created for Long or Short entries using Once Per Bar as Bᴜʟʟs or Bᴇᴀʀs labels appear only on confirmation after bar close.
===================================================================================================================
Does the indicator include Stop Loss and Take Profit plots?
This script doesn't have Stop Loss and Take Profit plots, but it can be connected to ™TradeChartist Plug and Trade as Oscillatory signal (" TrendRider Signal ") to generate Automatic Targets, set StopLoss and Take Profit plots and to create all types of alerts too. The 4hr chart of ICX-BTC below shows TrendRider connected to ™TradeChartist Plug and Trade.
===================================================================================================================
Does this indicator repaint?
No. This script doesn't repaint as it confirms its signals only after close above/below TrendRider's dynamic level and also uses security function to call higher time-frame values in the right way to avoid repainting. This can be verified using Bar Replay to check if the plots and fills stay in the same bar in real time as the Bar Replay.
===================================================================================================================
Example charts using TrendRider
Daily chart of BTC-USD
===================================================================================================================
15m chart of SPX
===================================================================================================================
1hr chart of ADA-USDT
===================================================================================================================
15m chart of XAU-USD
===================================================================================================================
4hr chart of Dow Jones Industrial Average
===================================================================================================================
Best Practice: Test with different settings first using Paper Trades before trading with real money
===================================================================================================================
This is not a free to use indicator. Get in touch with me (PM me directly if you would like trial access to test the indicator)
Premium Scripts - Trial access and Information
Trial access offered on all Premium scripts.
PM me directly to request trial access to the scripts or for more information.
===================================================================================================================
TradeChartist Chameleon™TradeChartist Chameleon is an exceptionally beautiful trend following indicator (visualised using Chameleon plot) based on Momentum and Volatility using User input of Chameleon Mode and Risk factor (ATR multiple) to generate Trade Opportunities.
===================================================================================================================
™TradeChartist Chameleon Features
Minimal user input of Chameleon Mode Selection from (Aggressive, Normal and Laid Back) and Chameleon Risk Factor (Min - 1, Max - 5 of ATR Multiple).
---> For Higher Timeframes, lower Risk Factor is recommended (Max - 3) as the trading range can be high based on Volatility.
---> For Lower Timeframes, higher Risk Factor can be used (Normal or Laid Back Mode) based on asset price volatility.
Comprehensive Chameleon Dashboard with useful information like Real-time Gains Tracker , User settings and general trade information. Dashboard can be customised based on user preference from Chameleon Settings.
Automatic Targets based on Trade.
Option to paint Price Bars to help identify Price Trend.
Option to display Profit Taking Bars (enabling this from settings will paint $ signs where Profit taking is recommended).
Option to color background based on trade type.
Alerts can be created for Long and Short Entry Signals using "Once per Bar" as Trade Entries are generated only upon confirmation (previous candle close below/above Chameleon Trigger line).
===================================================================================================================
How to create Alerts for ™TradeChartist Chameleon Long and Short Entries?
Alerts can be created for Long or Short entries using Once Per Bar as BUY and SELL labels appear with entries only on confirmation after bar close.
Does the indicator include Stop Loss and Take Profit plots?
This script doesn't have Stop Loss and Take Profit plots, but it can be connected to ™TradeChartist Plug and Trade as Oscillatory signal (" Chameleon ") to set StopLoss and Take Profit plots and to create all types of alerts too.
Does this indicator repaint?
No. This script doesn't repaint as it confirms its signals only after close above/below Chameleon Trigger line and also uses security function to call higher time-frame values in the right way to avoid repainting. This can be verified using Bar Replay to check if the plots and fills stay in the same bar in real time as the Bar Replay.
===================================================================================================================
Best Practice: Test with different settings first using Paper Trades before trading with real money
===================================================================================================================
This is not a free to use indicator. Get in touch with me (PM me directly if you would like trial access to test the indicator)
Premium Scripts - Trial access and Information
Trial access offered on all Premium scripts.
PM me directly to request trial access to the scripts or for more information.
===================================================================================================================
TradeChartist MTF Supertrend Pro™TradeChartist MTF SuperTrend Pro is the Multi Time-Frame version (using timeframe multiplier) of classic Volatility Stop or SuperTrend (Stop and Reverse indicator using multiple of Average True Range of lookback period trailing behind the price acting as both trend reversal signifier and StopLoss trigger at the same time ).
What does ™TradeChartist MTF SuperTrend Pro include?
Multi Time-Frame option using Time-Frame Multiplier to plot Higher Time Frame SuperTrend plot on Lower Time-Frame chart.
Auto-fibs - 2 types (1. Retracement from last significant high/low to previous significant low/high, 2. Retracement from Current High/Low to previous significant Low/High).
Trend identifying color bars.
Trend identifying Background colour.
Option to detect bars where Profit Taking is recommended using $ sign.
How to create Alerts for ™TradeChartist MTF SuperTrend Pro Long and Short Entries?
Alerts can be created for Long or Short entries using Once Per Bar as BUY and SELL labels appear with entries only on confirmation after bar close.
Does the indicator include Stop Loss and Take Profit plots?
This script doesn't have Stop Loss and Take Profit plots, but it can be connected to TradeChartist Plug and Trade as Non-Oscillatory signal to generate Automatic Targets, user set StopLoss and Take Profit plots and to create all types of alerts too.
Does this indicator repaint?
No. This script doesn't repaint as it confirms its signals only after close above/below SuperTrend plot and also uses security function to call higher time-frame values in the right way to avoid repainting. This can be verified using Bar Replay to check if the plots and fills stay in the same bar in real time as the Bar Replay.
===================================================================================================================
Tip 1: Using 1.618 as Timeframe Multiplier results in lucrative trades on most timeframes with ATR multiplier 1.618, 2.618 or 3.618. (Best Practice: Test with various values first on asset using Paper Trades before trading with real money)
Tip 2: Using bars, candles with no borders or Hollow Candles results in clear trend spotting with Bar color option enabled in settings.
===================================================================================================================
Chart below shows Performance of MTF SuperTrend Pro connected to Plug and Trade using Default settings.
===================================================================================================================
This is not a free to use indicator. Get in touch with me (PM me directly if you would like trial access to test the indicator)
Premium Scripts - Trial access and Information
Trial access offered on all Premium scripts.
PM me directly to request trial access to the scripts or for more information.
===================================================================================================================
TradeChartist PowerTracer™TradeChartist PowerTracer is an exceptionally well designed and functional indicator, requiring minimal user input to trace the asset's Bull and Bear Power. The indicator makes it visually engaging with its various color schemes and intelligent positioning of the PowerTracer Bar, tracking not just the current trend, but also the developing trend using a visually easy to understand Power plots.
What does ™TradeChartist PowerTracer do?
1. Tracks Bull and Bear Power and plots the information visually on chart using one of the following 3 Power plot options based on high or low power detection sensitivity.
𝗣𝗼𝘄𝗲𝗿𝗧𝗿𝗮𝗰𝗲𝗿 - Plot of the Bull and Bear Power Oscillator, pivotal to this script that tracks the true Bull and Bear Power along with Bull/Bear oscillator reading, calculated dynamically using a unique and original formula. Values beyond 50 and -50 are quite rare, but theoretically, they can go beyond 80 and -80. 𝗣𝗼𝘄𝗲𝗿𝗧𝗿𝗮𝗰𝗲𝗿's highs and lows are also tracked and updated real-time using labels placed exactly at the Highs and Lows with their readings.
Bar-wise Power Holder - Absolute Bull and Bear power of each bar. It is plotted by calculating the difference between Bull and Bear Power or each bar. The values can swing between -100 and +100 even though values above 90 and below 90 are rare. The bar color on the chart will be painted using this value to visually display the Bull/Bear strength if "Paint Bars on Chart" is enabled from the indicator settings.
Bar-wise Power Fight - Plot of Maximum Bull and Bear Power of every bar that helps visualize the fight between Bulls and Bears in each bar.
2. Visually displays the Balance of Power between the Bulls and the Bears using Opponent Power Gain background fill when it is 50% or over. For example, if the current PowerTracer plot is a Bull zone, enabling this setting with Opponent Power Gain % set at 75, will paint the background when Bear Power increases beyond 75% using the Bear Power Intensity fill based on Color Scheme the user opts from the settings. This option can be enabled or disabled from settings and the Opponent Power gain % (minimum 50%) can also be adjusted to spot the change in price trend early on.
3. Uses an accompanying 𝗣𝗼𝘄𝗲𝗿𝗧𝗿𝗮𝗰𝗲𝗿 bar that helps spot the true bull and bear power using simple linear blocks, displaying the power level using power intensity colors based on the color scheme.
4. Paints price bars and PowerTracer background using Power intensity colors based on Color Scheme from the indicator settings, which helps spot the increase or decrease in Bull and Bear Power.
5. Inverts bar colors, background fill and PowerTracer bar color to help see price using the Opponent's Point of View.
What markets can this indicator be used on?
-- Forex
-- Stocks - works best with 4hr or above and prices calculated taking gaps into account.
-- Commodities
-- Cryptocurrencies
and almost any asset on Trading View
What time-frames can this indicator be used on?
This indicator can be used on all timeframes. If the asset has very little volume/volatility or is far low in comparative value against the base currency, power detection can be choppy, but with most assets, this won't be an issue.
Does this indicator repaint?
-- No. Real-time Power plots can change colors and values based on current bar close as values get calculated dynamically. Once the bar closes, plots and power intensity colors don't repaint.
-- This can be verified using Bar Replay to check if the plots and fills stay in the same bar in real time as the Bar Replay
Does the indicator send alerts when the power shifts from Bull to Bear or from Bear to Bull?
Yes. Users can get alerts when Power gets shifted using Trading View alerts. This can be done by choosing '™TradeChartist PowerTracer' and 'Powershift to Bulls' or 'Powershift to Bears' under Trading View Alert condition and by using 'Once per bar close' as user needs to wait for candle close for Power shift confirmation.
Example Charts
In this split screen chart of Bitcoin, it can be seen how the 30m chart on left is Bearish and 5m chart on right is Bullish based on Power changes. The trend can be spotted on PowerTracer by spotting the Opponent's background fill that started showing when Opponent's power gained by over 75%. This is a good example using the script for scalping/swing trading using 2 timeframes. Note that the chart on the left shows Price bars and PowerTracer bar with inverted colors to show Opponent's point of view.
In this 15m chart of GBP-USD, 100% Power gain for Entries and Exits is used. This is a more conservative approach and is suited for less aggressive traders based on complete change of trend.
In this 2hr chart of Ethereum, all 3 Power plots are used to identify the trend using low sensitivity using 100% Power Gain entries and this shows how a trade can be held longer to maximise gains using entries with Power shift confirmations.
===================================================================================================================
This is not a free to use indicator. Get in touch with me (PM me directly if you would like trial access to test the indicator)
Premium Scripts - Trial access and Information
Trial access offered on all Premium scripts.
PM me directly to request trial access to the scripts or for more information.
===================================================================================================================
TFs Pivot Reversal StrategyThe Pivot Reversal strategy script uses pivot points to create a support and resistance level; based on this levels the strategy creates virtual stop-market orders to catch the trend if the price is crossing the pivot lines.
A configurable trailing-stop and stop-loss is being used to exit an open position.
How to use
The strategy works with all timeframes; the current chart setting is using a 15min timeframe. The strategy enters about 10 trades per day, depending on the used settings.
I'm also providing a "study" version of this strategy, which can be used to automate the strategy by using webhooks for instance.
The script is using a default commission of 0.075% which reflects Bitmex' Taker-Fees. This is just a default and can be modified in the strategy settings for each instrument individually.
How to access
This strategy is a "Invite Only" script. You can can subscribe or purchase the strategy ; please use the link below or send me a message via Tradingview to obtain access to the strategy and study script.
For enabling the script in your Tradingview chart window, click on "Indicators" and select "Invite-Only Scripts".
Full list of parameters:
"Pivot Left Bars" ... Number of bars on the left of the pivot point - used for pivot/peak detection
"Pivot Right Bars" ... Number of bars on the right of the pivot point - used for pivot/peak detection
"Entry Offset " ... Entry price offset after crossing pivot line (in %)
"Trailing Activation Level " ... Trailing stop activation level above/below average price (in %)
"Trailing Offset " ... Trailing stop price (in %)
"Stop Loss " ... Absolute stop-loss (in %)
"Capital Risk Factor " ... Capital risk factor (in %)
"Margin / Leverage " ... Optional leverage factor which can be used to leverage position (in %)
"Backtest ..." ... Backtest timeframe; area outside this timeframe will be grayed out
I'm looking forward to any feedback, reviews or change requests!
All-in-One Solutions - Long/Short StrategyHello,
I always had in mind that a single strategy cannot be profitable on multiple symbols or commodities ...
This is why I created this strategy where different settings can be applied for each of the symbol you use to trade.
For each symbol you trade, the strategy will ask you for 9 parameters to play with. I already filled the settings for several symbol but it is up to you to find the best 9 parameters for the symbol you like to trade and the time frame you usually use (I often use it in 1H).
The script does not allow any repaint and the Trading view back-testing system is reliable.
For exemple if you like to trade ETH/USD, you have to play with the 9 parameters and find the best net profitability calculated by the back-testing of Trading View.
Here is a screenshot of the setting page of the strategy :
imgur.com
You can find also below the link to all the previous scripts I published :
fr.tradingview.com
PS: please do not ask me to add in this strategy an alert system as Trading View does not allow to implement alerts in strategies script (because strategies scripts run on you computer, where alerts are located on TV servers).
Nevertheless if there is a demand, I can develop an indicator where you can implement the best settings found by you in this strategy and use it as an alerts script.
Please ask me for access, I grant free 1 week full access to all my indicators.
Have fun !
Last Update:
- I added the bar color in order to see on the chart the Long and Short positions
- I added the panels Open and Close positions to be visible on the chart
- I added an horizontal line on the chart when a position is open in order to see on the chart if position is positive or negative
- I modified the parameters description in order to make it more clear
I filled nice settings for 5 cryptos. If you find suitable settings for other commodities, please share the parameters into the comment in order to share with the community.
All-in-One Solutions - Long/Short StrategyHello,
I always had in mind that a single strategy cannot be profitable on multiple symbols or commodities...
This is why I created this strategy where different settings can be applied for each of the symbol you use to trade.
For each symbol you trade, the strategy will ask you for 9 parameters to play with. I already filled the settings for several symbol but it is up to you to find the best 9 parameters for the symbol you like to trade and the time frame you usually use (I often use it in 1H).
The script does not allow any repaint and the Trading view back-testing system is reliable.
For exemple if you like to trade ETH/USD, you have to play with the 9 parameters and find the best net profitability calculated by the back-testing of Trading View.
Here is a screenshot of the setting page of the strategy :
imgur.com
You can find also below the link to all the previous scripts I published :
fr.tradingview.com
PS: please do not ask me to add in this strategy an alert system as Trading View does not allow to implement alerts in strategies script (because strategies scripts run on you computer, where alerts are located on TV servers).
Nevertheless if there is a demand, I can develop an indicator where you can implement the best settings found by you in this strategy and use it as an alerts script.
Please ask me for access, I grant free 1 week full access to all my indicators.
Have fun !
CommonUtils█ OVERVIEW
This library is a utility tool for Pine Script™ developers. It provides a collection of helper functions designed to simplify common tasks such as mapping user-friendly string inputs to Pine Script™ constants and formatting timeframe strings for display. The primary goal is to make main scripts cleaner, more readable, and reduce repetitive boilerplate code. It is envisioned as an evolving resource, with potential for new utilities to be added over time based on community needs and feedback.
█ CONCEPTS
The library primarily focuses on two main concepts:
Input Mapping
Pine Script™ often requires specific constants for function parameters (e.g., `line.style_dashed` for line styles, `position.top_center` for table positions). However, presenting these technical constants directly to users in script inputs can be confusing. Input mapping involves:
Allowing users to select options from more descriptive, human-readable strings (e.g., "Dashed", "Top Center") in the script's settings.
Providing functions within this library (e.g., `mapLineStyle`, `mapTablePosition`) that take these user-friendly strings as input.
Internally, these functions use switch statements or similar logic to convert (map) the input string to the corresponding Pine Script™ constant required by built-in functions.
This approach enhances user experience and simplifies the main script's logic by centralizing the mapping process.
Timeframe Formatting
Raw timeframe strings obtained from variables like `timeframe.period` (e.g., "1", "60", "D", "W") or user inputs are not always ideal for direct display in labels or panels. The `formatTimeframe` function addresses this by:
Taking a raw timeframe string as input.
Parsing this string to identify its numerical part and unit (e.g., minutes, hours, days, weeks, months, seconds, milliseconds).
Converting it into a more standardized and readable format (e.g., "1min", "60min", "Daily", "Weekly", "1s", "10M").
Offering an optional `customSuffix` parameter (e.g., " FVG", " Period") to append to the formatted string, making labels more descriptive, especially in multi-timeframe contexts.
The function is designed to correctly interpret various common timeframe notations used in TradingView.
█ NOTES
Ease of Use: The library functions are designed with simple and understandable signatures. They typically take a string input and return the corresponding Pine Script™ constant or a formatted string.
Default Behaviors: Mapping functions (`mapLineStyle`, `mapTablePosition`, `mapTextSize`) generally return a sensible default value (e.g., `line.style_solid` for `mapLineStyle`) in case of a non-matching input. This helps prevent errors in the main script.
Extensibility of Formatting: The `formatTimeframe` function, with its `customSuffix` parameter, allows for flexible customization of timeframe labels to suit the specific descriptive needs of different indicators or contexts.
Performance Considerations: These utility functions primarily use basic string operations and switch statements. For typical use cases, their impact on overall script performance is negligible. However, if a function like `formatTimeframe` were to be called excessively in a loop with dynamic inputs (which is generally not its intended use), performance should be monitored.
No Dependencies: This library is self-contained and does not depend on any other external Pine Script™ libraries.
█ EXPORTED FUNCTIONS
mapLineStyle(styleString)
Maps a user-provided line style string to its corresponding Pine Script™ line style constant.
Parameters:
styleString (simple string) : The input string representing the desired line style (e.g., "Solid", "Dashed", "Dotted" - typically from constants like LS1, LS2, LS3).
Returns: The Pine Script™ constant for the line style (e.g., line.style_solid). Defaults to line.style_solid if no match.
mapTablePosition(positionString)
Maps a user-provided table position string to its corresponding Pine Script™ position constant.
Parameters:
positionString (simple string) : The input string representing the desired table position (e.g., "Top Right", "Top Center" - typically from constants like PP1, PP2).
Returns: The Pine Script™ constant for the table position (e.g., position.top_right). Defaults to position.top_right if no match.
mapTextSize(sizeString)
Maps a user-provided text size string to its corresponding Pine Script™ size constant.
Parameters:
sizeString (simple string) : The input string representing the desired text size (e.g., "Tiny", "Small" - typically from constants like PTS1, PTS2).
Returns: The Pine Script™ constant for the text size (e.g., size.tiny). Defaults to size.small if no match.
formatTimeframe(tfInput, customSuffix)
Formats a raw timeframe string into a more display-friendly string, optionally appending a custom suffix.
Parameters:
tfInput (simple string) : The raw timeframe string from user input or timeframe.period (e.g., "1", "60", "D", "W", "1S", "10M", "2H").
customSuffix (simple string) : An optional suffix to append to the formatted timeframe string (e.g., " FVG", " Period"). Defaults to an empty string.
Returns: The formatted timeframe string (e.g., "1min", "60min", "Daily", "Weekly", "1s", "10min", "2h") with the custom suffix appended.
ZenAlgo - MultiverseThe ZenAlgo – Multiverse indicator provides a multi-timeframe view of Volume-Weighted Average Price (VWAP) levels and their dynamic interaction with price across seven defined timeframes: Daily, Weekly, Monthly, Quarterly, Semi-Annual, and Yearly. The indicator is intended to help traders contextualize price within time-based value areas and examine how price interacts with statistically relevant bands derived from those VWAPs.
VWAP Calculation and Period Structure
At the core, this script computes VWAP levels anchored to six distinct timeframes using volume data and a configurable source (default is HLC3). Each VWAP resets at the start of its corresponding period (e.g., Daily VWAP resets at the beginning of a new day) using timeframe.change() as a detection mechanism. This allows each VWAP level to reflect a clean aggregation of price and volume over its specified period.
VWAP levels are only computed if volume data is present and cumulative volume increases, ensuring logical consistency. If volume is missing or inconsistent, the script terminates execution with an error to prevent invalid outputs.
Band Calculation
Each VWAP is accompanied by one or two optional bands on both sides, calculated using percentage-based offset. Daily VWAP is configurable per user preference to use either standard deviation or a percentage-based offset. These bands provide a dynamic value area that expands or contracts with volatility or proportional price distance, respectively.
The bands help classify price as:
Inside the main band (e.g., between ±1 band): near average value
Inside extended band (e.g., ±2 bands): stretched but not extreme
Beyond extended band: potentially overheated or oversold conditions
This layering creates a multi-zoned map of value perception across timeframes.
Labeling and Historical Tracking
As each new VWAP is computed, it is stored in a bounded array alongside metadata such as label position, line objects, test count, and test state (whether price has interacted with it). Each level is drawn as a dotted horizontal line and labeled with its value and corresponding period (e.g., "D", "W", "M").
Price interaction with a VWAP level (i.e., candle high/low crossing the line) changes the styling of the label and line, marking it as "tested." A cap on how many tested levels are retained (default 10) avoids excessive clutter and resource usage.
These persistent horizontal levels give the trader a visual reference of where value was defined in previous periods and how price has respected or ignored those levels over time.
Summary Tables and Grid
Two visual table overlays are provided:
1. VWAP Summary Table , this table shows:
VWAP values per timeframe
Trend interpretation (rising, falling, stable) relative to price
Ranked order of VWAP values (from highest to lowest)
The order is recalculated each bar to reflect the vertical positioning of each VWAP on the price chart.
2. VWAP Relationship Grid
A grid matrix compares each VWAP and current price against all others. Each cell reflects whether a given source is above, below, or within a tolerance threshold relative to another. Colors (green, red, gray) visually encode the result, with the diagonal marked in black and unused cells disabled.
This matrix helps identify alignment or dissonance among timeframes, allowing users to detect whether shorter-term value is leading or lagging longer-term value.
Price Band Classification
For the Daily VWAP specifically, the script includes an extra classification system. It assigns the current price to a zone (e.g., "At VWAP", "Bear Band", "Above Bull Band 2") based on where the price lies in relation to the VWAP bands. This classification is also used for dynamic coloring and added to the daily label.
Display Controls
The script offers fine-grained controls:
Toggle visibility of each VWAP and band group independently
Adjust the offset of labels from the current bar
Customize band multipliers and color transparency
Limit the number of historical VWAP labels plotted
Position both the summary and grid tables flexibly on screen
These options allow traders to declutter their charts and focus on the most relevant context for their strategy.
How to Interpret and Use
This indicator provides a structured view of market value perception across various timeframes. For example:
When price converges with multiple VWAPs, it may suggest consensus on value.
When price moves away from all VWAPs, it may indicate trending or stretched conditions.
Crosses and retests of VWAPs (especially higher-timeframe ones) can act as areas of interest.
The band-based classification helps identify transitional zones and whether price is situated in an area where value is being accepted or rejected.
The summary tables offer a high-level dashboard of price positioning and value structure, which can assist with top-down analysis, filtering setups, or contextual decision-making.
Added Value Compared to Free Alternatives
Most free VWAP scripts:
Cover only a single timeframe (often daily or session-based)
Lack historical level tracking with tested/retested visualization
Do not support grid-level relationships or multi-timeframe band analysis
Offer limited configuration over how bands are calculated or displayed
This script consolidates multiple value areas in one consistent framework and goes further by tracking historical relevance, providing interaction logs, and organizing data into actionable overlays.
For traders seeking comprehensive value context across intraday and swing horizons, this tool offers persistent and structured data views that are otherwise unavailable through individual, isolated VWAP tools.
Limitations and Disclaimers
The indicator depends on volume data. On instruments with unreliable or synthetic volume (e.g., certain spot forex or CFDs), results may not be meaningful.
Band-based interpretation should not be used as a signal mechanism on its own.
On low timeframes, longer-period VWAPs may appear flat or visually compressed.
As with any analytical tool, interpretation requires trader discretion and should be combined with broader context.
[blackcat] L2 FiboKAMA Adaptive TrendOVERVIEW
The L2 FiboKAMA Adaptive Trend indicator leverages advanced technical analysis techniques by integrating Fibonacci principles with the Kaufman Adaptive Moving Average (KAMA). This combination creates a dynamic and responsive tool designed to adapt seamlessly to changing market conditions. By providing clear buy and sell signals based on adaptive momentum, this indicator helps traders identify potential entry and exit points effectively. Its intuitive design and robust features make it a valuable addition to any trader’s arsenal 📊💹.
According to the principle of Kaufman's Adaptive Moving Average (KAMA), it is a type of moving average line specifically designed for markets with high volatility. Unlike traditional moving averages, KAMA can automatically adjust its period based on market conditions to improve accuracy and responsiveness. This makes it particularly useful for capturing market trends and reducing false signals in varying market environments.
The use of Fibonacci magic numbers (3, 8, 13) enhances the performance and accuracy of KAMA. These numbers have special mathematical properties that align well with the changing trends of KAMA moving averages. Combining them with KAMA can significantly boost its effectiveness, making it a popular choice among traders seeking reliable signals.
This fusion not only smoothens price fluctuations but also ensures quick responses to market changes, offering dependable entry and exit points. Thanks to the flexibility and precision of KAMA combined with Fibonacci magic numbers, traders can better manage risks and aim for higher returns.
FEATURES
Enhanced Kaufman Adaptive Moving Average (KAMA): Incorporates Fibonacci principles for improved adaptability:
Source Price: Allows customization of the price series used for calculation (default: HLCC4).
Fast Length: Determines the period for quicker adjustments to recent price changes.
Slow Length: Sets the period for smoother transitions over longer-term trends.
Dynamic Lines:
KAMA Line: A yellow line representing the primary adaptive moving average, which adapts quickly to new trends.
Trigger Line: A fuchsia line serving as a reference point for detecting crossovers and generating signals.
Visual Cues:
Buy Signals: Green 'B' labels indicating potential buying opportunities.
Sell Signals: Red 'S' labels signaling possible selling points.
Fill Areas: Colored regions between the KAMA and Trigger lines to visually represent trend directions and strength.
Alert Functionality: Generates real-time alerts for both buy and sell signals, ensuring timely notifications for actionable insights 🔔.
Customizable Parameters: Offers flexibility through adjustable inputs, allowing users to tailor the indicator to their specific trading strategies and preferences.
HOW TO USE
Adding the Indicator:
Open your TradingView chart and navigate to the indicators list.
Select L2 FiboKAMA Adaptive Trend and add it to your chart.
Configuring Parameters:
Adjust the Source Price to choose the desired price series (e.g., close, open, high, low).
Set the Fast Length to define how quickly the indicator responds to recent price movements.
Configure the Slow Length to determine the smoothness of long-term trend adaptations.
Interpreting Signals:
Monitor the chart for green 'B' labels indicating buy signals and red 'S' labels for sell signals.
Observe the colored fill areas between the KAMA and Trigger lines to gauge trend strength and direction.
Setting Up Alerts:
Enable alerts within the indicator settings to receive notifications whenever buy or sell signals are triggered.
Customize alert messages and frequencies according to your trading plan.
Combining with Other Tools:
Integrate this indicator with additional technical analysis tools and fundamental research for comprehensive decision-making.
Confirm signals using other indicators like RSI, MACD, or Bollinger Bands for increased reliability.
Optimizing Performance:
Backtest the indicator across various assets and timeframes to understand its behavior under different market conditions.
Fine-tune parameters based on historical performance and current market dynamics.
Integrating Magic Numbers:
Understand the basic principles of KAMA to find suitable entry points for Fibonacci magic numbers.
Utilize the efficiency ratio to measure market volatility and adjust moving average parameters accordingly.
Apply Fibonacci magic numbers (3, 8, 13) to enhance the responsiveness and accuracy of KAMA.
LIMITATIONS
Market Volatility: May produce false signals during periods of extreme volatility or sideways movement.
Parameter Sensitivity: Requires careful tuning of fast and slow lengths to balance responsiveness and stability.
Asset-Specific Behavior: Effectiveness can vary significantly across different financial instruments and time horizons.
Complementary Analysis: Should be used alongside other analytical methods to enhance accuracy and reduce risk.
NOTES
Historical Data: Ensure adequate historical data availability for precise calculations and backtesting.
Demo Testing: Thoroughly test the indicator on demo accounts before deploying it in live trading environments.
Continuous Learning: Stay updated with market trends and continuously refine your strategy incorporating feedback from the indicator's performance.
Risk Management: Always implement proper risk management practices regardless of the signals provided by the indicator.
ADVANCED USAGE TIPS
Multi-Timeframe Analysis: Apply the indicator across multiple timeframes to gain deeper insights into underlying trends.
Divergence Strategy: Look for divergences between price action and the KAMA line to spot potential reversals early.
Volume Integration: Combine volume analysis with the indicator to confirm the strength of identified trends.
Custom Scripting: Modify the script to include additional filters or conditions tailored to your unique trading approach.
IMPROVING KAMA PERFORMANCE
Increase Length: Extend the KAMA length to consider more historical data, reducing the impact of short-term price fluctuations.
Adjust Fast and Slow Lengths: Make KAMA smoother by increasing the fast length and decreasing the slow length.
Use Smoothing Factor: Apply a smoothing factor to control the level of smoothness; typical values range from 0 to 1.
Combine with Other Indicators: Pair KAMA with other smoothing indicators like EMA or SMA for more reliable signals.
Filter Noise: Use filters or other technical analysis tools to eliminate price noise, enhancing KAMA's effectiveness.
ZenAlgo - RangerThe core of the indicator is the daily range, anchored around the 1-minute timeframe VWAP (volume-weighted average price), with ±2 standard deviations defining the upper and lower bounds. This range dynamically forms throughout the day and then gets “locked” at 23:59 each day to establish historical reference values.
The indicator calculates this locked VWAP and standard deviation per day, which serves two primary purposes:
Drawing today's real-time evolving range , updated each minute.
Plotting previous daily ranges , based on historical locked VWAPs and standard deviations, providing visual reference boxes on the chart.
This design enables the trader to identify mean-reversion zones and persistent directional biases based on volume-weighted price consensus.
Multiple Standard Deviation Layers
Beyond the ±2.0 deviation bounds, optional lines are available at half-step increments (e.g., ±0.5, ±1.5, ..., ±4.5) and full-step levels beyond ±2.0 (±3.0, ±4.0, ±5.0). These provide a customizable grid to visualize price extremes, tail behavior, or potential breakout zones relative to volume-adjusted price equilibrium.
Users can enable only the levels they need, offering flexibility depending on their strategy (e.g., scalping versus swing trading).
Historical Range Retention
The script stores up to 70 previous daily VWAP + standard deviation values (adjustable). For each, it draws a full range box and standard deviation lines in the past. This historical context helps in understanding how current price interacts with prior days’ balance zones.
These boxes are always drawn from 00:00 to 23:59 UTC , ensuring consistent alignment across instruments and avoiding session-based discrepancies.
Monday Range Reference (Drawn on Tuesdays)
On Tuesdays, the indicator plots the previous Monday's VWAP-based range across the rest of the week. This serves as a persistent contextual anchor for traders watching weekly unfolding behavior. The range is defined identically (VWAP ±2σ) and drawn from Monday 00:00 through the following Monday.
This method assumes Monday often sets the tone or structure for the week, and tracking this level through time may highlight support/resistance confluence or range expansion scenarios.
Each Monday range is extended over 7 days and includes dashed lines at the 25%, 50%, and 75% marks within the range. These midrange markers help traders assess microstructure behaviors (e.g., reversion to median, failure to hold midpoint, etc.).
Daily Volume Delta via 4H Candles
The indicator also integrates daily buy/sell volume deltas , derived from 4-hour candles of the regular session (non-Heikin Ashi). The logic categorizes volume as:
Buy volume when candle closes above the previous close.
Sell volume when it closes below.
Even split when the candle closes flat.
These volumes accumulate each day to derive net delta (buy - sell). This delta is recorded for each day and can optionally be displayed. A similar process tracks the delta for each Monday range on an ongoing basis.
This information quantifies the market’s aggressive buying vs. selling , correlating with price positions inside or outside the VWAP ranges. A strong delta in one direction may justify a price sustaining above/below VWAP, or diverging from the previous range.
Interpretation and Best Usage Practices
VWAP±2σ Range : Considered a high-probability area for consolidation or reversal. Mean-reverting strategies can benefit from signals within this area.
VWAP±3.0 and beyond : Extreme deviations may signal exhaustion or breakout potential, but are less frequent.
Previous Range Overlap : Overlap of today’s price with past VWAP zones may indicate support/resistance zones.
Monday Range on Tuesday : Persistent levels where the week may repeatedly pivot. Best used on instruments that exhibit weekly cyclical behavior (e.g., indices, forex).
Delta Behavior : Sharp positive or negative delta combined with price outside VWAP bands may suggest initiative participation and potential trend continuation.
Added Value Over Free Alternatives
While many free VWAP tools exist, this script differs in several specific and factual ways:
Anchored 1-minute VWAP lock at a consistent daily timestamp (23:59 UTC), enabling historical analysis.
Historical storage of previous VWAP ranges , with adjustable memory depth and visual continuity.
Flexible standard deviation plotting , down to 0.5 increments, tailored to the user's strategy needs.
Dedicated Monday range analysis , not common in freely available scripts.
Volume delta tracking per day and per Monday range , offering a directional volume view unavailable in standard VWAP implementations.
Persistent and visual interpretation framework using extended boxes and dashed lines for easier contextual navigation.
Each of these additions increases the script’s utility for methodical traders relying on volume-weighted statistics, without requiring additional configuration or external calculations.
Limitations and Disclaimers
VWAP based on 1-minute resolution : The indicator uses minute-level data to calculate daily VWAP and standard deviation. This offers high fidelity on liquid instruments but may produce noisy or unreliable levels on illiquid assets or during periods of low volume. For example, microcap stocks or thinly traded altcoins might not yield stable VWAP centers.
Inferred buy/sell volume : Volume delta is estimated using price movement from one candle to the next (close-to-close logic), rather than actual trade-level aggressor data (which is not accessible via TradingView). This approximation may misclassify volume in choppy or low-volatility environments, especially in assets where price changes do not correlate well with order flow (e.g., crypto during low-volume weekends).
Non-continuous markets and price gaps : For assets that do not trade continuously (e.g., stocks, futures), the VWAP calculation starts fresh every day at 00:00 UTC, regardless of the instrument’s official session start. As a result:
Pre-market/post-market trades may be included in VWAP when analyzing equities, even though they are often excluded in professional VWAP tools.
Opening gaps in equities and futures may distort early VWAP values due to lack of volume context, especially if the previous day's session was already closed when new data begins accumulating.
Weekend gaps in crypto, although less frequent due to 24/7 trading, can still influence delta accumulation if abrupt moves happen during low liquidity periods.
Daily session alignment : The VWAP anchoring and box drawing uses 00:00 UTC to 23:59 UTC windows. For instruments with different official session timings (e.g., US equities, CME futures), this may cause mismatches between expected session VWAPs and the ones shown in this script.
Conclusion
The ZenAlgo – Ranger script offers a systematic visualization of volume-adjusted price behavior, combining statistical VWAP ranges with volume delta overlays. By integrating daily and weekly reference zones, this tool supports structured decision-making in various market environments, particularly for traders prioritizing mean reversion, range expansion, or trend confirmation.
BankNifty-15min Intraday-High Risk-R-AlgoAI-Final Copy// This script is for educational and informational purposes only.
// It does not constitute financial or investment advice.
// Trading involves substantial risk and may not be suitable for all investors.
// Always do your own research or consult with a licensed financial advisor
// before making any trading or investment decisions.
// The author is not responsible for any losses incurred using this script.
⚡ Overview:
This script is a technical indicator designed for intraday trading on the Bank Nifty future chart using the 15-minute timeframe. It uses a combination of normalized buy and sell pressure along with a Hull Moving Average (HMA) smoothing method and volume-based normalization to detect potential buy and sell signals.
💡 Main Concept:
Buy and Sell Pressure Calculation:
The script calculates:
bp (Buy Pressure): close - low
sp (Sell Pressure): high - close
These values are smoothed using a custom Hull Moving Average (HMA) function, designed to reduce lag and react quicker to price changes compared to traditional moving averages.
📊 Normalized Signals:
Buy and Sell pressures are normalized against their HMA smoothed values.
Volume normalization is also applied to adjust for the effect of market activity on the pressure signals.
📌 Signal Logic:
A Buy Signal is generated when:
Only one signal per day is allowed to avoid signal spamming.
A Sell Signal is generated under the opposite conditions:
One sell signal per day.
🧾 Visual Output:
When a signal is triggered, the script:
Draws a horizontal line at the signal price (with labels like BUY @ or SELL @).
Plots triangle markers on the chart to highlight buy (green) or sell (red) signals.
Deletes or extends lines at the end of each day to maintain visual clarity.
📈 Additional Features:
EMA 50 & EMA 200:
Plots two common Exponential Moving Averages (50-period and 200-period) for trend visualization.
⚠️ Important Notes:
This script is meant for educational and research purposes only.
It is designed for high-risk intraday trading.
Signals are based on historical behavior and should not be treated as financial advice.
No stop-loss or take-profit logic is included — traders should manage risk independently.
✅ Summary:
This indicator offers a simple visual and quantitative approach to spot potential intraday turning points for Bank Nifty future on a 15-minute chart, with clear buy and sell markers. It combines volume, price pressure, and moving average smoothing to filter out random price movements.